#include<stdio.h>
#include<unistd.h>
#include<signal.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<stdlib.h>

////验证core dump进程异常时被设置为1
//int main()
//{
//  if(fork()==0){
//    while(1){
//      printf("I am child \n");
//      int a=10;
//      a/=0;
//    }
//  }
//
//  int status=0;
//  //-1任何一个子进程
//  waitpid(-1,&status,0);
//  //                                   退出码次低8个比特位
//  printf("exit code:%d,exit sig:%d,core dump flag:%d\n",(status>>8)&0xFF,status&0x7F,(status>>7)&1);
//}
//


////
////}
////
//////系统调用发送信号
//////我们使用命令行参数 ./mytest signo who 所以是3
////int main(int argc,char *argv[])
////{
////  if(argc !=3){
////    Usage(argv[0]);
////    return 1;
////  }
////   int signo=atoi(argv[1]);
////   int who=atoi(argv[2]);
////   kill(who,signo);
////  
////   printf("signo:%d,who:%d\n",signo,who);
////
////}
////




//alarm闹钟

//void handler(int signo)
//{
//  switch(signo){
//    case 2:
//      printf("hello 2,get a signal:%d\n",signo);
//      break;
//    case 3:
//      printf("hello 3.get a signal:%d\n",signo);
//      break;
//    case 9:
//      printf("hello 9.get a signal:%d\n",signo);
//      break;
//    default:
//      printf("hello tao:%d\n",signo);
//      break;
//  }
//}
//int main()
//{
//  int sig=1;
//  //获取所有信号
//  //9号信号不可以被重定义
//  for(;sig<=31;sig++)
//  {
//    signal(sig,handler);
//  }
//  //闹钟
//  alarm(3);
//  while(1){
//    printf("i am a process!\n");
//    sleep(1);
//
//  } 
//}
//
//





//信号产生 进程异常
//void handler(int signo)
//{
//  switch(signo){
//    case 2:
//      printf("hello 2,get a signal:%d\n",signo);
//      break;
//    case 3:
//      printf("hello 3.get a signal:%d\n",signo);
//      break;
//    case 9:
//      printf("hello 9.get a signal:%d\n",signo);
//      break;
//    default:
//      printf("hello tao:%d\n",signo);
//      break;
//  }
//}
//
//int main()
//{
//  int sig=1;
//  //获取所有信号
//  //9号信号不可以被重定义
//  for(;sig<=31;sig++)
//  {
//    signal(sig,handler);
//  }
//  
//  while(1)  
//{
//////37-40 让程序产生错误
////   int *p=NULL;
////   p=(int *)100;
////   *p=100;
//    printf("hello main\n");
//    sleep(1);
//  }
//}
//
